package io.renren.htby.utils;

/**
 * 0 缺省值 1 采集数据消息 2 采集数据消息返回值 3 控制消息 4 控制消息返回值 5 采集代理配置消息 6 采集代理配置消息返回值 7 状态消息 8
 * 状态消息返回值 9 查询配置信息 10配置返回信息 11获取设备列表信息 12获取设备列表返回值 13获取变量列表信息 14获取变量列表信息返回值 15
 * 物联网接口配置信息 16 物联网接口配置消息返回值 17 控制接口配置信息 18 控制接口配置消息返回值 19 分发接口配置信息 20
 * 分发接口配置信息返回值 21 获取设备+变量列表信息 , 22 获取设备+变量列表信息 的返回值,
 * 
 * @author lfy.xys
 * @date 2018年6月28日
 *
 */
public enum IOTPBeanType {

	/**
	 * 缺省值 0
	 */
	Defult(0),

	/**
	 * 2 采集数据消息返回值
	 */
	CollectionData(1),

	/**
	 * 1 采集数据消息
	 */
	ReCollectionData(2),

	/**
	 * 3 IOTS发给代理IOS的 控制消息
	 */
	IotsToIotCtrl(3),
	/**
	 * 4 IOTS发给代理IOS的 控制消息返回值
	 */
	ReIotsToIotCtrl(4),

	/**
	 * 5 采集代理配置消息
	 */
	CollectionConfig(5),

	/**
	 * 6 采集代理配置消息返回值
	 */
	ReCollectionConfig(6),

	/**
	 * 7 设备状态消息, TODO subtype里有1和2，代表 设备和服务两种状态
	 */
	EqmStatus(7),
	/**
	 * 8 设备状态消息返回值。
	 */
	ReEqmStatus(8),

	/**
	 * 9 查询配置信息 TODO 暂时不用
	 */
	QueryConfig(9),
	/**
	 * 10 配置 返回信息 TODO 暂时不用
	 */
	ReQueryConfig(10),
	/**
	 * 11 获取设备列表信息, TODO 暂时不用
	 */
	SyncEqmInfo(11),
	/**
	 * 12 获取设备列表返回值 TODO 暂时不用
	 */
	ReSyncEqmInfo(12),

	/**
	 * 13 获取变量列表信息, TODO 暂时不用
	 */
	SyncVarInfo(13),
	/**
	 * 14 获取变量列表信息返回值 TODO 暂时不用
	 */
	ReSyncVarInfo(14),

	/**
	 * 15 物联网接口配置信息,
	 */
	IotsConfig(15),
	/**
	 * 16 物联网接口配置消息返回值
	 */
	ReIotsConfig(16),

	/**
	 * 17 控制接口配置信息
	 */
	CtrlConfig(17),
	/**
	 * 18 控制接口配置消息返回值
	 */
	ReCtrlConfig(18),

	/**
	 * 19 分发接口配置信息
	 */
	DisConfig(19),
	/**
	 * 20 分发接口配置信息返回值
	 */
	ReDisConfig(20),

	/**
	 * 21 获取设备+变量列表信息
	 */
	SyncEqmAndVarInfo(21),
	/**
	 * 22 获取设备+变量列表信息 的返回值,
	 */
	ReSyncEqmAndVarInfo(22);

	private int value;

	private IOTPBeanType(int value) {
		this.value = value;
	}

	public int getValue() {
		return value;
	}

	public static IOTPBeanType getType(int value) {
		switch (value) {
		case 1:
			return CollectionData;
		case 2:
			return ReCollectionData;
		case 3:
			return IotsToIotCtrl;
		case 4:
			return ReIotsToIotCtrl;
		case 5:
			return CollectionConfig;
		case 6:
			return ReCollectionConfig;
		case 7:
			return EqmStatus;
		case 8:
			return ReEqmStatus;
		case 9:
			return QueryConfig;
		case 10:
			return ReQueryConfig;
		case 11:
			return SyncEqmInfo;
		case 12:
			return ReSyncEqmInfo;
		case 13:
			return SyncVarInfo;
		case 14:
			return ReSyncVarInfo;
		case 15:
			return IotsConfig;
		case 16:
			return ReIotsConfig;
		case 17:
			return CtrlConfig;
		case 18:
			return ReCtrlConfig;
		case 19:
			return DisConfig;
		case 20:
			return ReDisConfig;
		case 21:
			return SyncEqmAndVarInfo;
		case 22:
			return ReSyncEqmAndVarInfo;
		default:
			return Defult;
		}
	}
}
